package com.example.cv.service;

import com.example.cv.model.ACEmployee;
import com.example.cv.model.Candidate;
import com.example.cv.model.Employee;
import com.example.cv.model.Employer;
import org.apache.ibatis.annotations.Select;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author 周杰
 */
@Transactional(rollbackFor = Exception.class)
public interface EmployeeService {
    /**
     * description:求职者投递简历（插入雇佣表）
     * @param c_id,e_id
     * @return boolean
     */
    boolean addEmployee(int c_id, int e_id);

    /**
     * description:求职者根据c_id查询所有投递的公司信息
     * @param
     * @return java.util.List<com.example.cv.model.Employee>
     */
    List<Employer> findEmployersInEmployeesByCId(int c_id);

    /**
     * description:根据求职者id和用人单位id查询雇佣表的雇员信息
     * @param c_id,e_id
     * @return com.example.cv.model.Employee
     */
    Employee findEmployeesByIds(int c_id, int e_id);

    /**
     * description:用人单位处理简历消息
     * @param c_id,e_id
     * @return boolean
     */
    boolean informCV(int c_id, int e_id,int cv_isAgree);

    /**
     * description:用人单位根据e_id查询所有投递的个人信息
     * @param e_id
     * @return java.util.List<com.example.cv.model.Candidate>
     */
    List<Candidate> findCandidatesInEmployeesByEId(int e_id);

    /**
     * description:用人单位处理面试消息
     * @param c_id,e_id
     * @return boolean
     */
    boolean informInterview(int c_id, int e_id, int interview_isAgree);

    /**
     * description:根据e_id查询候选者
     * @param e_id
     * @return java.util.List<com.example.cv.model.Employee>
     */
    List<Employee> findEmployeesByEId(int e_id);

    /**
     * description:根据c_id查询候选者
     * @param c_id
     * @return java.util.List<com.example.cv.model.Employee>
     */
    List<Employee> findEmployeesByCId(int c_id);

    /**
     * description:根据e_id查找所有已录取的求职者
     * @param e_id
     * @return java.util.List<com.example.cv.model.Candidate>
     */
    List<Candidate> findAllAcceptedCandidatesByEId(int e_id);

    List<ACEmployee> findAcceptedCandidatesByParams(String school,String e_name);

    boolean addACEmployeeByIds(int c_id, int e_id);
}
